package ru.simplemaps.map.elements;

/**
 * Представляет тип элемента, который может быть отображен на карте, а именно описывает
 * <UL>
 * <li>как отображать объект</li>
 * <li>как загружать/сохранять объект</li>
 * </UL>
 *
 * @author enaku_adm
 * @since 29.07.2010 16:43:39
 */
public abstract class ElementType<T extends MapElement> {
    private final String type;

    protected ElementType(String type) {
        this.type = type;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof ElementType)) return false;

        ElementType that = (ElementType) o;

        if (type != null ? !type.equals(that.type) : that.type != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        return type != null ? type.hashCode() : 0;
    }
}
